package org.fast.project.web.vo;

import lombok.Data;

import org.fast.project.service.bo.PageDO;

/**
 * 页面视图对象
 *
 * @author junG
 * @date 2022/11/27
 */
@Data
public class PageVO<T> {
    /**
     * 页数
     */
    Integer pageNumber;
    /**
     * 分页大小
     */
    Integer pageSize;

    /**
     * 总页数
     */
    Integer totalPageNumbers;

    /**
     * 总数据量
     */
    Long totalElements;
    /**
     * 数据集合体
     */
    T data;

    public static <T, R> PageVO<T> init(PageDO<R> pageDo, T data) {
        return new PageVO<T>().setData(data)
                .setPageNumber(pageDo.getPageNumber())
                .setPageSize(pageDo.getPageSize())
                .setTotalElements(pageDo.getTotalElements())
                .setTotalPageNumbers(pageDo.getTotalPageNumbers());
    }
}
